/**
 * 数据加密解密
 */
import CryptoJS from "crypto-js";

// 密钥
const SECRET_KEY = CryptoJS.enc.Utf8.parse("Htpl2uD0g89tMozD");
// 密钥偏移量
const SECRET_IV = CryptoJS.enc.Utf8.parse("J9TSJL9aGzjjAfhw");

/**
 * 加密方法
 * @param {string} word - 需要加密的内容
 * @returns {string}
 */
export function encrypt(word) {
	let srcs = CryptoJS.enc.Utf8.parse(word);
	// 加密模式为CBC，补码方式为PKCS5Padding（也就是PKCS7）
	let encrypted = CryptoJS.AES.encrypt(srcs, SECRET_KEY, {
		iv: SECRET_IV,
		mode: CryptoJS.mode.CBC,
		padding: CryptoJS.pad.Pkcs7
	});

	//返回base64
	return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
}

/**
 * 解密方法
 * @param {string} word - 需要解密的内容
 * @returns {string}
 */
export function decrypt(word) {
	let base64 = CryptoJS.enc.Base64.parse(word);
	let src = CryptoJS.enc.Base64.stringify(base64);
	// 解密模式为CBC，补码方式为PKCS5Padding（也就是PKCS7）
	let decrypt = CryptoJS.AES.decrypt(src, SECRET_KEY, {
		iv: SECRET_IV,
		mode: CryptoJS.mode.CBC,
		padding: CryptoJS.pad.Pkcs7
	});

	let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
	return decryptedStr.toString().trim();
}